// 导入数据库操作模块
const db = require('../db/index')



// 获取文章列表数据
exports.getArtCates=(req,res)=>{
  
// 根据分类的状态 获取所有未被删除的分类列表数据
// is_delete = 0 就是未被删除的文章数据  根据id进行从小到大的排序
    const sql = 'select * from ev_article_cate where is_delete =0 order by id asc '
    db.query(sql,(err,results)=>{
      // 数据库查询失败
      if(err) return res.cc(err)
      // 执行sql成功
      res.send({
        status:0,
        message:'获取文章分类列表成功',
        data:results
      })
})
}
// 新增文章分类
exports.addArticleCates=(req,res)=>{
  // 定义查询分类名称与别名是否被占用的sql语句
  const sql = 'select * from ev_article_cate where name =? or alias =?'
  // 执行查重操作
  db.query(sql,[req.body.name,req.body.alias],(err,results)=>{
    // 执行sql语句失败
    if(err) return res.cc(err)
    // 分类名称和分类别名都被占据
    if(results.length === 2) return res.cc('分类名称与分类别名都被占用,请重试')
    if(results.length === 1 && results[0].name ===req.body.name && results[0].alias ===req.body.alias) return res.cc('分类名称与分类别名都被占用,请重试')
    // 分类名称或分类别名被占用
    if(results.length ===1 && results[0].name ===req.body.name) return res.cc('分类名称已被占用')
    if(results.length ===1 && results[0].alias ===req.body.alias) return res.cc('分类别名已被占用')
    // 新增文章分类 分类名称和分类别名可以使用，执行添加动作
    // 新增文章分类的sql语句
    const sql = 'insert ev_article_cate set ?'
    // 执行sql语句
    db.query(sql,req.body,(err,results)=>{
      console.log(req.body)
      // sql语句执行错误
      if(err) return res.cc(err)
      if(results.affectedRows !==1)  return res.cc('新增文章分类失败')
      res.cc('新增文章类别成功',0)
    })
  })
}
// 根据id删除文章分类
exports.deleteCateId=(req,res)=>{
  // 根据id删除文章的sql
  const sql = 'update ev_article_cate set is_delete = 1 where id = ?'
  // 执行sql语句
  db.query(sql,req.params.id,(err,results)=>{
    // sql语句执行失败
    if(err) return res.cc(err)
    if(results.affectedRows !==1) return res.cc('根据ID删除文章分类失败,请重试!')
    // 删除成功
    res.cc('删除成功',0)
  })

}
// 根据id获取文章分类数据
exports.getCateId=(req,res)=>{
  const sql = 'select * from ev_article_cate where id = ?'
  db.query(sql,req.params.id,(err,results)=>{
    console.log(results[0])
    if(err) return res.cc(err)
    if(results.length !==1) return res.cc('根据id获取文章分类数据失败！')
    // 数据响应给客户端
    res.send({
      status:0,
      message:'获取文章分类数据成功',
      data:results[0]
    })
  })
}
// 根据id更新文章分类数据
exports.updateCateId=(req,res)=>{

// 定义查询分类名称与别名是否被占用的sql语句
const sql = 'select * from ev_article_cate where Id <>? and(name=? or alias =?)'
// 执行查重操作
db.query(sql,[req.body.Id,req.body.name,req.body.alias],(err,results)=>{
  // 执行sql语句失败
  if(err) return res.cc(err)
  // 分类名称和分类别名都被占据
  if(results.length === 2) return res.cc('分类名称与分类别名都被占用,请重试')
  if(results.length === 1 && results[0].name ===req.body.name && results[0].alias ===req.body.alias) return res.cc('分类名称与分类别名都被占用,请重试')
  // 分类名称或分类别名被占用
  if(results.length ===1 && results[0].name ===req.body.name) return res.cc('分类名称已被占用')
  if(results.length ===1 && results[0].alias ===req.body.alias) return res.cc('分类别名已被占用')
  
  const sql = 'update ev_article_cate set ? where Id = ?'
  db.query(sql,[req.body,req.body.Id],(err,results)=>{
    if(err) return res.cc(err)
    if(results.affectedRows!==1) return res.cc('更新数据失败！')
    res.cc('更新分类信息成功',0)
  })
})

}